package com.example.pcl.service;

import com.example.pcl.pojo.dto.NotificationsDTO;
import com.example.pcl.pojo.dto.NotificationsFilterDTO;
import com.example.pcl.pojo.entity.Notifications;
import com.baomidou.mybatisplus.extension.service.IService;
import com.example.pcl.pojo.vo.NotificationsVO;
import com.example.pcl.result.PageResult;

/**
 * <p>
 * 通知表，存储与用户和心理咨询师相关的各种预约通知 服务类
 * </p>
 *
 * @author xx
 * @since 2024-12-17
 */
public interface INotificationsService extends IService<Notifications> {
    /**
     * 查询通知列表
     *
     * @param filterDTO 筛选条件
     * @return 分页后的通知列表
     */
    PageResult<NotificationsVO> listNotifications(NotificationsFilterDTO filterDTO);

    /**
     * 新增通知
     *
     * @param notificationsDTO 通知数据
     */
    void addNotification(NotificationsDTO notificationsDTO);

    /**
     * 修改通知
     *
     * @param notificationsDTO 修改的通知数据
     */
    void updateNotification(NotificationsDTO notificationsDTO);

    /**
     * 删除通知
     *
     * @param notificationId 通知ID
     */
    void deleteNotification(Integer notificationId);

    NotificationsVO finById(Integer id);

    void batchRead();

}
